<?php
/**
 * 电子合同接口
 */
require_once INCLUDE_ROOT_PATH . 'http.class.php';
require_once INCLUDE_ROOT_PATH . 'e_api/comm/config.php';
require_once INCLUDE_ROOT_PATH . 'e_api/class/eSign.class.php';
require_once INCLUDE_ROOT_PATH . 'e_api/comm/utils.php';

class Econtract
{
	private $project_id;
	private $project_secret;

	public function __construct()
	{
		$this->project_id = IS_TEST ? "1111563679" : "5111595521";
		$this->project_secret = IS_TEST ? "5391599b044cd8872a538737caf26cec" : "4928009d080fbebb688d31c352a2db87";
	}
    
    /*
    * 创建账户
    * type 账户类型，0-个人，1-企业
    * mobile 手机号
    * name 名称、企业名称
    * idcard 身份证号、法人身份证号
	* personarea 用户归属地 0-大陆，1-香港，2-澳门，3-台湾，4-外籍
	* userType 注册类型，1-代理人注册，2-法人注册，默认1（可空）
	* agentName 代理人姓名，当注册类型为1时必填
	* agentIdNo 代理人身份证号，当注册类型为1时必填
    */
    public function addAccount($type, $mobile, $name, $idcard, $personarea=0, $userType='1', $agentName,$agentIdNo,$legalIdNo, $legalName)
    {   
        // 初始化e签宝 PHP SDK
        $sign = new eSign();
        $iRet = $sign->init($this->project_id, $this->project_secret);
        
        // 初始化成功，执行项目账户登录
        if(0 == $iRet){
            // 项目账户登录成功
            if($sign->projectid_login()){
                // 添加个人账户
                if($type == 0){				
                    $ret = $sign->addPersonAccount($mobile, $name, $idcard, $personarea);
                }       
                //添加企业账户
                if($type == 1){				
                    $ret = $sign->addOrganizeAccount($mobile, $name, $idcard, $personarea, $userType, $agentName,$agentIdNo,$legalIdNo,$legalName);
                }
                //账户创建成功，显示印章创建页面
                return $ret;    
            }
        }
    }
    
    /*
    * 生成电子印章
    * type 账户类型，0-个人，1-企业
    * accountId 注册的账户id
    * $color （印章颜色，1-红色，2-蓝色，3-黑色）
    */    
    public function addTemplateSeal($type, $accountId, $color, $hText, $qText)
    {   
        // 初始化e签宝 PHP SDK
        $sign = new eSign();
        $iRet = $sign->init($this->project_id, $this->project_secret);
        
        // 初始化成功，执行项目账户登录
        if(0 == $iRet){
            // 项目账户登录成功
            if($sign->projectid_login()){
                // 生成个人账户模板印章
                if($type == 0){			
                    $templateType = 'square';
                    $ret = $sign->addTemplateSeal($accountId, $templateType, $color);
                } 
                
                // 生成企业账户模板印章
                if($type == 1){				
                    $templateType = 'star';	                        			
                    $ret = $sign->addTemplateSeal($accountId, $templateType, $color, $hText, $qText);
                }
                return $ret;
                
            }
        }
    }     
    
    /*
    * 用户签署
    * $accountId 注册的账户id
    * $sealData 电子印章数据
    * $srcPdfFile 原pdf路径/名称
    * $dstPdfFile 签署后pdf路径/名称
    * $fileName 文档显示名称
    * $signType 1-单页签章，2-多页，3-骑缝，4-关键字;
    * $posPage 签署页码;
    * $posX 签署位置X坐标;
    * $posY 签署位置Y坐标;
    * $key 签署位置关键字;
    */       
    public function userSign($accountId, $sealData, $srcPdfFile, $dstPdfFile, $fileName, $signType ,$posPage, $posX, $posY, $key)
    {   
        // 初始化e签宝 PHP SDK
        $sign = new eSign();
        $iRet = $sign->init($this->project_id, $this->project_secret);
        
        // 初始化成功，执行项目账户登录
        if(0 == $iRet){
            // 项目账户登录成功
            if($sign->projectid_login())
            {
                // 平台用户签署
                $signret = $sign->userSignPDF($accountId, str_replace('\\','',$sealData), $srcPdfFile, $dstPdfFile, $signType, $posPage, $posX, $posY, $key, $fileName);

                return $signret;
            }
        }
		else
		{
			return $iRet;
		}
    } 
  
}
?>